home *** CD-ROM | disk | FTP | other *** search
/ DS-CD ROM 2 1993 August / DS CD-ROM 2.Ausgabe (August 1993).iso / programm / ds0257 / demo.exe / PARMS.DEM < prev    next >
Text File  |  1992-02-16  |  3KB  |  98 lines

  1. ; ----------------------------
  2. ; PARMS.DEM    - Demoprogramm für die Routinen aus PARMS.LIB
  3. ;                (für den A86)
  4. ;
  5. ;                (c) Bernd Schemmer 1990 - 1992
  6. ;                Letzter Update: 15.02.1992
  7. ;
  8. ; Übersetzen:
  9. ;  A86 PARMS.DEM DEMOS.INC TO PARMS.COM
  10. ;
  11. ; Hinweis: Die Environment-Variable 'A86' muß den Dateinamen 'MACROS.MAC'
  12. ;          enthalten und die .LIB-Dateien müssen über die Datei A86.LIB
  13. ;          erreichbar sein.
  14. ;
  15. ; ---------------------------
  16.          jmp start
  17.  
  18. logo      db 'PARMS.DEM - Demoprogramm für die Routinen aus PARMS.LIB'
  19.           db CR,LF
  20.           db '-------------------------------------------------------'
  21.           db CR,LF,CR,LF
  22. GETLENGTH logo
  23.  
  24. msg0      db 'Original-Parameter: '
  25.           db CR,LF
  26. GETLENGTH msg0
  27.  
  28. msg1      db CR,LF
  29.           db 'Anzahl Parameter: '
  30. count     db 'xxx'
  31.           db CR,LF
  32. GETLENGTH msg1
  33.  
  34. msg2      db 'Inhalt der Parameter (''»'' und ''«'' sind nur Trennzeichen zur '
  35.           db CR,LF
  36.           db '                      Anzeige der Länge der Paramter):'
  37.           db CR,LF
  38.           db CR,LF
  39. GETLENGTH msg2
  40.  
  41. DefString Parameter,128       ; String-Variable
  42.  
  43. start:
  44.          call ShowLogo        ; Logo ausgeben
  45.  
  46.          WRITE_STRING msg0    ; Original-Parameter ausgeben
  47.          mov si,080h
  48.          lodsb
  49.          mov cl,al
  50.          xor ch,ch
  51.          mov dx,si
  52.          mov bx,01
  53.          mov ah,040h
  54.          int 021h
  55.          call ShowCR_LF
  56.  
  57.          call Paramcount      ; Anzahl der Parameter ermitteln
  58.          xor ah,ah
  59.  
  60.          push ax              ; Anzahl Parameter sichern
  61.          mov di,offset count  ; Anzahl ausgeben
  62.          call Konvert_Al_To_Dezstring
  63.          WRITE_STRING msg1
  64.          pop cx               ; CX = Anzahl der Parameter
  65.  
  66.          jcxz >l9             ; keine Parameter angegeben
  67.          push cx
  68.          WRITE_STRING msg2
  69.          pop dx
  70.          mov ax,1
  71.                               ; Parameter-Inhalte ausgeben
  72. l0:
  73.          push ax,dx
  74.  
  75.          mov di,offset parameter
  76.          call paramstr        ; Parameter ermitteln
  77.          mov dx,di            ; Parameter anzeigen
  78.          mov cl,[di]          ; Parameter wird als String mit Längenbyte
  79.          xor ch,ch            ; mittelt!
  80.          mov b[di],'»'        ; Längenbyte überschreiben
  81.          add di,cx
  82.          mov b[di+1],'«'
  83.          inc cx,2
  84.          mov ah,040h
  85.          mov bx,01
  86.          int 021h
  87.                               ; Zeilenvorschub ausgeben
  88.          call ShowCR_LF
  89.  
  90.          pop dx,ax
  91.          inc ax
  92.          cmp ax,dx
  93.          jbe l0               ; nächsten Parameter
  94.  
  95. l9:                           ; und Programm-Ende
  96.          EndProcess 0
  97.  
  98.